/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package issr.boundary;

import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Form;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.Select;
import com.vaadin.ui.TextField;
import issr.boundary.vaadin.AbstractView;
import issr.boundary.vaadin.MainApplication;
import issr.controller.ControlloreGenerazionePassword;
import issr.controller.ControlloreGenerazionePassword_Service;
import issr.controller.Utente;
import issr.misc.Labels;
import java.util.List;

/**
 *
 * @author cecco
 */
public class PannelloGenerazionePassword extends AbstractView implements Button.ClickListener {

    private ControlloreGenerazionePassword_Service cls;
    private ControlloreGenerazionePassword controllore;
    private final TextField passwordField = new TextField(Labels.PASSWORD);
    private final Select utenteSelect = new Select(Labels.UTENTE);
    private final Button submit;
    private final FormLayout layout;
    private final Form form = new Form();

    public PannelloGenerazionePassword() {
        cls = new ControlloreGenerazionePassword_Service();
        controllore = cls.getControlloreGenerazionePasswordPort();
        layout = new FormLayout();
        setSizeFull();
        setCompositionRoot(layout);
        layout.setHeight("100%");
        layout.setWidth("100%");
        layout.setSpacing(true);
        layout.setMargin(true);

        form.addField(Labels.PASSWORD, passwordField);
        form.addField(Labels.UTENTE, utenteSelect);
        layout.addComponent(form);

        submit = new Button("Submit", this);
        
        layout.addComponent(submit);
        setCompositionRoot(layout);
    }

    public void visualizzaListaDipendenti() {
        List<Utente> utenti = controllore.ottieniListaDipendentiPuntoVendita((Utente) MainApplication.getProject().getUser());
        for (Utente utente : utenti) {
            utenteSelect.addItem(utente);
        }

    }

    @Override
    protected void open() throws Exception {
        utenteSelect.removeAllItems();
        visualizzaListaDipendenti();
    }

    @Override
    protected void close() throws Exception {
    }

    @Override
    public void buttonClick(ClickEvent event) {
        if (controllore.generaPassword(
                (Utente) utenteSelect.getValue(),
                (String) passwordField.getValue(),
                (Utente) MainApplication.getProject().getUser()) == true) {
            MainApplication.getProject().getMainWindow().showNotification(
                    "Password Utente " + ((Utente) utenteSelect.getValue()).getLogin() + " generata con successo");
        } else {
            MainApplication.getProject().getMainWindow().showNotification(
                    "Errore generazione password");
        }
    }
}
